package conson.tech.manage.coupons.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import conson.tech.core.response.Response;
import conson.tech.manage.coupons.entity.dto.CouponsAuditDto;
import conson.tech.manage.coupons.entity.dto.CouponsAuditListDto;
import conson.tech.manage.coupons.entity.dto.CouponsDto;
import conson.tech.manage.coupons.entity.dto.CouponsSearchDto;
import conson.tech.manage.coupons.entity.vo.CouponsBatchVo;
import conson.tech.manage.coupons.entity.vo.CouponsDetailVo;
import conson.tech.manage.coupons.entity.vo.MerchantInformationVo;
import conson.tech.manage.coupons.entity.vo.OperationLogVo;

import java.util.List;

/**
 * InterfaceName: CouponsService
 * Description:
 * Author: ZYF
 * Date: 2020/7/21
 * Version: 1.0
 */
public interface CouponsService {

    /**
     * 新增优惠券
     */
    Response addCoupons(CouponsDto dto, Long userId, String userName);

    /**
     * 优惠券作废
     */
    Response delCoupons(Long couponsId, Long userId, String userName);

    /**
     * 修改优惠券信息
     */
    Response editCoupons(CouponsDto dto, Long userId, Long couponsId, String userName);

    /**
     * 查询优惠券列表
     */
    Page<CouponsBatchVo> searchCouponsList(Integer pageSize, Integer pageIndex, CouponsSearchDto dto);

    /**
     * 查询优惠券详细信息
     */
    CouponsDetailVo detailCoupons(Long couponsId);

    /**
     * 优惠券审核
     */
    Response auditCoupon(Long couponsId, Long userId, String userName);

    /**
     * 优惠券批量审核
     */
    Response auditListCoupon(List<Long> couponsIds, Long userId, String userName);

    /**
     * 复制优惠券
     */
    CouponsDetailVo copyCoupons(Long couponsId, Long userId, String userName);

    /**
     * 查询优惠券日志列表
     */
    List<OperationLogVo> queryOperationLog(Long couponsId);

    /**
     * 运营管理人员单次审核优惠券
     */
    Response auditCoupons(Long couponsId, CouponsAuditDto dto, Long userId, String userName);

    /**
     * 运营人员批量审核优惠券
     */
    Response auditListCoupons(CouponsAuditListDto dto, Long userId, String userName);

    /**
     * 财务人员单次审核优惠券
     */
    Response auditFinanceCoupons(Long couponsId, CouponsAuditDto dto, Long userId, String userName);


    /**
     * 财务人员批量审核优惠券
     */
    Response auditFinanceListCoupons(CouponsAuditListDto dto, Long userId, String userName);

    /**
     * 查询商家信息
     */
    List<MerchantInformationVo> queryMerchant();


}
